package phone.example.com.a36kr.fragment;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.AnticipateInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;

import java.util.ArrayList;

import phone.example.com.a36kr.R;
import phone.example.com.a36kr.adapter.InvestViewPagerAdapter;
import phone.example.com.a36kr.fragment.investfragment.RaiseAllFragment;
import phone.example.com.a36kr.fragment.investfragment.RaiseFinishFragment;
import phone.example.com.a36kr.fragment.investfragment.RaiseNowFragment;
import phone.example.com.a36kr.fragment.investfragment.RaiseOkFragment;
import phone.example.com.a36kr.tools.BaseFragment;

/**
 * Created by dllo on 16/8/15.
 */
public class InvestFragment extends BaseFragment {


    private TabLayout tabLayout;
    private ViewPager viewPager;
    private ImageView approveIv;
    private PopupWindow popWnd;
    private ImageView giftIv;

    @Override
    protected int setLayout() {
        return R.layout.fragment_invest;
    }

    @Override
    protected void initView() {
        tabLayout = (TabLayout) getView().findViewById(R.id.invest_tabLayout);
        viewPager = (ViewPager) getView().findViewById(R.id.invest_viewPager);
        giftIv = bindView(R.id.invest_gift);
        giftIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                giftIv.setImageBitmap(null);
                showPopWindow();
            }
        });

    }

    @Override
    protected void initData() {
        ArrayList<Fragment>fragments = new ArrayList<>();
        fragments.add(new RaiseAllFragment());//全部
        fragments.add(new RaiseNowFragment());//募资中
        fragments.add(new RaiseFinishFragment());//募资完成
        fragments.add(new RaiseOkFragment());// 融资成功
        InvestViewPagerAdapter viewPagerAdapter = new InvestViewPagerAdapter(getFragmentManager());
        viewPagerAdapter.setFragments(fragments);
        viewPager.setAdapter(viewPagerAdapter);
        tabLayout.setupWithViewPager(viewPager);
    }

    private void showPopWindow(){
        View contentView = LayoutInflater.from(getContext()).inflate(R.layout.items_pop_invest_attestation, null);
        popWnd = new PopupWindow(contentView,
                WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, true);
        popWnd.setContentView(contentView);
        popWnd.setFocusable(true);
        approveIv = (ImageView) contentView.findViewById(R.id.invest_frame_approve);
        ImageView closeIv = (ImageView) contentView.findViewById(R.id.pop_close_invest);
        closeIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popWnd.dismiss();
                giftIv.setImageResource(R.mipmap.nav_icon_activity);
                // 补间动画
                // 跟属性动画的区别是
                // 补间动画不会改变控件的位置
                // 属性动画会真正改变控件的位置

                // 视图动画，也叫Tween（补间）动画可以在一个视图容器内执行一系列简单变换（位置、大小、旋转、透明度）。
                // 譬如，如果你有一个TextView对象，
                // 您可以移动、旋转、缩放、透明度设置其文本，当然，如果它有一个背景图像，背景图像会随着文本变化。

                // 特别特别注意：补间动画执行之后并未改变View的真实布局属性值。切记这一点，
                // 譬如我们在Activity中有一个Button在屏幕上方，
                // 我们设置了平移动画移动到屏幕下方然后保持动画最后执行状态呆在屏幕下方，
                // 这时如果点击屏幕下方动画执行之后的Button是没有任何反应的，而点击原来屏幕上方没有

                //属性动画实现原理就是修改控件的属性值实现的动画。
                RotateAnimation animation = new RotateAnimation(-45, 45,
                        Animation.RELATIVE_TO_SELF, 0.5f,
                        Animation.RELATIVE_TO_SELF,0.5f);
                //秒
                animation.setDuration(100);
                //次数
                animation.setRepeatCount(4);

                animation.setRepeatMode(Animation.REVERSE);
                // 改变动画播放的速度
                animation.setInterpolator(new AccelerateInterpolator());
                giftIv.startAnimation(animation);
            }
        });
        View rootview = LayoutInflater.from(getContext()).inflate(R.layout.fragment_invest, null);
        popWnd.showAtLocation(rootview, Gravity.BOTTOM, 0, 200);

        contentView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                popWnd.dismiss();
                return false;
            }
        });

    }
}
